import resizeOption from './src/config/resize';

import vue from '@vitejs/plugin-vue';
import pxtorem from 'postcss-pxtorem'
import autoprefixer from 'autoprefixer'
import Components from 'unplugin-vue-components/vite';


import { resolve } from 'path';
import { VantResolver } from 'unplugin-vue-components/resolvers';
import { defineConfig, loadEnv } from 'vite'


export default defineConfig(({ mode }) => {
  // 1. 读取当前模式对应的 .env 文件
  const { VITE_API_BASE_URL, VITE_API_PROXY_URL } = loadEnv(mode, process.cwd())


  return {
    base: './', // 设置相对路径
    plugins: [  // Vite 插件应该放在这里
      vue(),
      Components({
        resolvers: [VantResolver()],
        dirs: ['src/components'], // 自动导入 src/components 目录下的组件
        extensions: ['vue'], // 指定文件扩展名
        deep: true, // 是否搜索子目录
        dts: true // 自动生成类型声明文件
      })
    ],
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src')
      }
    },
    css: {
      postcss: {
        plugins: [
          autoprefixer(),               // 自动补全前缀
          pxtorem({
            rootValue: resizeOption.rootValue,
            propList: ['*'],            // 全部属性都转换
            selectorBlackList: ['.no-rem'], // 过滤不想转换的选择器
            exclude: /node_modules/i    // 排除第三方包（可选）
          })
        ]
      }
    },
    server: {
      port: 9999,
      host: '0.0.0.0',
      open: true, // 启动时自动打开浏览器
      proxy: {
        // 当请求路径以 /api 开头时
        [VITE_API_BASE_URL]: {
          target: VITE_API_PROXY_URL, // 你的后端接口地址
          changeOrigin: true,              // 是否修改请求源
          rewrite: path => path.replace(new RegExp(`^${VITE_API_BASE_URL}`), '') // 去掉 /api 前缀
        }
      }
    }
  };


})
